Custom Validation তৈরি করা

Web Development - অ্যাপাচি ট্যাপেস্ট্রি (Apache Tapestry) - Tapestry এর ফর্ম এবং Validation |

Apache Tapestry-এর Validation Framework আপনাকে বিভিন্ন ধরণের ডেটা যাচাই করার সুবিধা প্রদান করে, যেমন ফর্ম ইনপুট এর সঠিকতা যাচাই করা। Tapestry ফ্রেমওয়ার্কে আপনি Custom Validation তৈরি করতে পারেন, যা ব্যবহারকারী ইনপুট অনুযায়ী আপনার নির্দিষ্ট কাস্টম রুলস অনুসারে ডেটা যাচাই করবে।

এখানে আমরা Custom Validation তৈরি করার পদ্ধতি সম্পর্কে আলোচনা করব।


Tapestry এর Custom Validation তৈরির ধাপ

  1. Custom Validator Class তৈরি করা
  2. Custom Validator ক্লাসকে পেজ বা কম্পোনেন্টে ব্যবহার করা

ধাপ ১: Custom Validator Class তৈরি করা

Tapestry-তে Custom Validation তৈরি করতে, প্রথমে আপনাকে একটি Validator Class তৈরি করতে হবে যা Validator ইন্টারফেস বা @Validate এনোটেশন ব্যবহার করবে।

Custom Validator Class তৈরি করতে নিচের ধাপগুলো অনুসরণ করুন:

  1. Custom Validator Interface তৈরি করা

    Tapestry আপনাকে নিজের কাস্টম ভ্যালিডেশন তৈরি করার জন্য একটি interface প্রদান করে যার মাধ্যমে আপনি নির্দিষ্ট ভ্যালিডেশন রুল তৈরি করতে পারবেন।

package com.example.validators;

import org.apache.tapestry5.Validator;
import org.apache.tapestry5.ValidationException;
import org.apache.tapestry5.annotations.Validate;

public class UsernameValidator implements Validator<String> {

    @Override
    public void validate(String value) throws ValidationException {
        if (value == null || value.trim().isEmpty()) {
            throw new ValidationException("Username cannot be empty.");
        }

        if (value.length() < 5) {
            throw new ValidationException("Username must be at least 5 characters long.");
        }

        if (value.contains(" ")) {
            throw new ValidationException("Username cannot contain spaces.");
        }
    }
}

এখানে:

  • validate() মেথডে ব্যবহারকারী প্রদানকৃত username ইনপুট যাচাই করা হচ্ছে।
  • যদি username খালি থাকে বা 5 এর কম অক্ষর থাকে অথবা স্পেস থাকে, তবে ValidationException ছুঁড়ে দেওয়া হবে, যা তাতে ব্যবহারকারীকে একটি ত্রুটি বার্তা দেখাবে।

ধাপ ২: Custom Validation ব্যবহার করা

এখন আমরা Login ফর্মের username ফিল্ডে এই কাস্টম ভ্যালিডেশন প্রয়োগ করব।

  1. Java ক্লাসে Custom Validation যোগ করা:
package com.example.pages;

import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.Validate;
import org.apache.tapestry5.ioc.annotations.Inject;
import com.example.validators.UsernameValidator;

public class Login {
    @Property
    @Validate("usernameValidator")
    private String username;  // Username field
    
    @Property
    private String password;  // Password field

    @Property
    private boolean rememberMe;  // Remember Me checkbox

    // Action to be performed when the form is successfully submitted
    public Object onSuccessFromLoginForm() {
        if ("admin".equals(username) && "password".equals(password)) {
            return Home.class;
        } else {
            return Login.class;
        }
    }
}

এখানে:

  • @Validate এনোটেশন ব্যবহার করে আমরা username ফিল্ডে UsernameValidator কাস্টম ভ্যালিডেশন যুক্ত করেছি। এটি ফর্ম সাবমিট হলে validate() মেথডকে কল করবে এবং নির্দিষ্ট শর্তে ত্রুটি বার্তা প্রদান করবে।

ধাপ ৩: Tapestry-তে Custom Validator ব্যবহার করার জন্য TML ফাইল

এখন, আমাদের ফর্মের TML টেমপ্লেট ফাইলের মাধ্যমে ভ্যালিডেশন বার্তা দেখাতে হবে।

login.tml (TML ফাইল):

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
    <head>
        <title>Login Form</title>
    </head>
    <body>
        <h2>Login</h2>

        <!-- Form Tag -->
        <t:form t:id="loginForm">
            <t:label value="Username" for="username"/>
            <t:textfield t:id="username" value="username"/>

            <t:label value="Password" for="password"/>
            <t:passwordfield t:id="password" value="password"/>

            <t:checkbox t:id="rememberMe" value="rememberMe" label="Remember Me" />
            
            <!-- Login Button -->
            <t:button t:id="loginButton" value="Login"/>
        </t:form>

        <!-- Displaying validation error messages -->
        <t:if test="username.validator.hasErrors">
            <div style="color: red;">
                <t:message from="username" />
            </div>
        </t:if>
    </body>
</html>

এখানে:

  • <t:message>: এই ট্যাগটি ব্যবহারকারীর ইনপুটের জন্য সংশ্লিষ্ট ভ্যালিডেশন ত্রুটি বার্তা দেখাতে ব্যবহৃত হয়। এখানে username ইনপুটের জন্য কোনো ত্রুটি হলে, এটি ত্রুটি বার্তা প্রদর্শন করবে।
  • <t:if>: এটি একটি কন্ডিশনাল ট্যাগ, যা ভ্যালিডেশন ত্রুটি থাকলে ত্রুটি বার্তা প্রদর্শন করবে।

ধাপ ৪: Custom Validation-এর উন্নত ব্যবহার

Tapestry-তে Custom Validation আরও উন্নত করতে, আপনি multiple constraints এবং Complex Validation প্রয়োগ করতে পারেন, যেমন:

  • পাসওয়ার্ড শক্তি যাচাই করা (lowercase, uppercase, special characters, etc.)
  • বিশেষ নিয়মের অধীনে email validation করা।
  • Asynchronous Validation: কোন কিছু আপডেট বা সার্ভার সাইড চেক করার জন্য।

এছাড়া আপনি custom validation annotations তৈরি করে, অন্যান্য ফিল্ডগুলিতেও এই কাস্টম ভ্যালিডেশন প্রয়োগ করতে পারেন।


সারাংশ

Tapestry ফ্রেমওয়ার্কে Custom Validation তৈরি করা সহজ এবং কার্যকর। @Validate এনোটেশন এবং Validator Interface ব্যবহার করে আপনি আপনার নিজস্ব ভ্যালিডেশন রুল তৈরি করতে পারেন, যা ফর্ম ডেটা যাচাই করতে সহায়ক। Tapestry Validation Framework এর মাধ্যমে আপনি দ্রুত এবং পরিষ্কারভাবে ফর্মের ভ্যালিডেশন করতে পারবেন, এবং কাস্টম ভ্যালিডেশন ব্যবহার করে আপনাদের প্রয়োজনীয় নির্দিষ্ট চেক করতে পারবেন।

Content added By
Promotion